{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import os\n",
    "import warnings\n",
    "\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "base_path = \"C:\\\\Users\\\\wenyang.zhang\\\\Documents\\\\MySpace\\\\Workspace\\\\PredictionPlatform\\\\Datasource\"\n",
    "file_path = os.path.join(base_path, \"BANNER_0.csv\")\n",
    "df = pd.read_csv(file_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>REPORT_DATE</th>\n",
       "      <th>STORE_BKEY</th>\n",
       "      <th>BANNER_NAME</th>\n",
       "      <th>STORE_TYPE</th>\n",
       "      <th>PRODUCT_BKEY</th>\n",
       "      <th>BRAND_NAME</th>\n",
       "      <th>AMOUNT_PER_KG</th>\n",
       "      <th>PRICE_PER_KG</th>\n",
       "      <th>HAS_GROUND</th>\n",
       "      <th>WEEK_OF_YEAR</th>\n",
       "      <th>...</th>\n",
       "      <th>IS_NEWYEAR</th>\n",
       "      <th>IS_CHRISTMAS</th>\n",
       "      <th>IS_12</th>\n",
       "      <th>IS_11</th>\n",
       "      <th>IS_618</th>\n",
       "      <th>IS_SUMMER</th>\n",
       "      <th>IS_WINTER</th>\n",
       "      <th>STORE_COUNT</th>\n",
       "      <th>CITY_COUNT</th>\n",
       "      <th>RN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN0401200</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>20.295983</td>\n",
       "      <td>162.367865</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN04O2904</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>4.761905</td>\n",
       "      <td>178.666667</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1107500</td>\n",
       "      <td>KINDER CHOCOLATE</td>\n",
       "      <td>8.510638</td>\n",
       "      <td>100.765957</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1501100</td>\n",
       "      <td>RAFFAELLO</td>\n",
       "      <td>20.382166</td>\n",
       "      <td>138.598726</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN8701862</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN8701863</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>7.111111</td>\n",
       "      <td>144.497778</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN87O8063</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>20.869565</td>\n",
       "      <td>151.930435</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCNC911600</td>\n",
       "      <td>COLLECTION</td>\n",
       "      <td>2.702703</td>\n",
       "      <td>172.756757</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN0401200</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>20.295983</td>\n",
       "      <td>162.367865</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN04O2904</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>4.761905</td>\n",
       "      <td>178.666667</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1107500</td>\n",
       "      <td>KINDER CHOCOLATE</td>\n",
       "      <td>8.510638</td>\n",
       "      <td>100.765957</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1501100</td>\n",
       "      <td>RAFFAELLO</td>\n",
       "      <td>20.382166</td>\n",
       "      <td>138.598726</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN8701862</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN8701863</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>7.111111</td>\n",
       "      <td>144.497778</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN87O8063</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>20.869565</td>\n",
       "      <td>151.930435</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCNC911600</td>\n",
       "      <td>COLLECTION</td>\n",
       "      <td>2.702703</td>\n",
       "      <td>172.756757</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110013</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN0401200</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>20.295983</td>\n",
       "      <td>162.367865</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110013</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN04O2904</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>4.761905</td>\n",
       "      <td>178.666667</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110013</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1107500</td>\n",
       "      <td>KINDER CHOCOLATE</td>\n",
       "      <td>8.510638</td>\n",
       "      <td>100.765957</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110013</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1501100</td>\n",
       "      <td>RAFFAELLO</td>\n",
       "      <td>20.382166</td>\n",
       "      <td>138.598726</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   REPORT_DATE  STORE_BKEY BANNER_NAME STORE_TYPE PRODUCT_BKEY  \\\n",
       "0   2018-02-24  BJ07110011    7-Eleven        CVS   XCN0401200   \n",
       "1   2018-02-24  BJ07110011    7-Eleven        CVS   XCN04O2904   \n",
       "2   2018-02-24  BJ07110011    7-Eleven        CVS   XCN1107500   \n",
       "3   2018-02-24  BJ07110011    7-Eleven        CVS   XCN1501100   \n",
       "4   2018-02-24  BJ07110011    7-Eleven        CVS   XCN8701862   \n",
       "5   2018-02-24  BJ07110011    7-Eleven        CVS   XCN8701863   \n",
       "6   2018-02-24  BJ07110011    7-Eleven        CVS   XCN87O8063   \n",
       "7   2018-02-24  BJ07110011    7-Eleven        CVS   XCNC911600   \n",
       "8   2018-02-24  BJ07110012    7-Eleven        CVS   XCN0401200   \n",
       "9   2018-02-24  BJ07110012    7-Eleven        CVS   XCN04O2904   \n",
       "10  2018-02-24  BJ07110012    7-Eleven        CVS   XCN1107500   \n",
       "11  2018-02-24  BJ07110012    7-Eleven        CVS   XCN1501100   \n",
       "12  2018-02-24  BJ07110012    7-Eleven        CVS   XCN8701862   \n",
       "13  2018-02-24  BJ07110012    7-Eleven        CVS   XCN8701863   \n",
       "14  2018-02-24  BJ07110012    7-Eleven        CVS   XCN87O8063   \n",
       "15  2018-02-24  BJ07110012    7-Eleven        CVS   XCNC911600   \n",
       "16  2018-02-24  BJ07110013    7-Eleven        CVS   XCN0401200   \n",
       "17  2018-02-24  BJ07110013    7-Eleven        CVS   XCN04O2904   \n",
       "18  2018-02-24  BJ07110013    7-Eleven        CVS   XCN1107500   \n",
       "19  2018-02-24  BJ07110013    7-Eleven        CVS   XCN1501100   \n",
       "\n",
       "          BRAND_NAME  AMOUNT_PER_KG  PRICE_PER_KG  HAS_GROUND  WEEK_OF_YEAR  \\\n",
       "0             ROCHER      20.295983    162.367865           0             8   \n",
       "1             ROCHER       4.761905    178.666667           0             8   \n",
       "2   KINDER CHOCOLATE       8.510638    100.765957           0             8   \n",
       "3          RAFFAELLO      20.382166    138.598726           0             8   \n",
       "4         KINDER JOY       0.000000      0.000000           0             8   \n",
       "5         KINDER JOY       7.111111    144.497778           0             8   \n",
       "6         KINDER JOY      20.869565    151.930435           0             8   \n",
       "7         COLLECTION       2.702703    172.756757           0             8   \n",
       "8             ROCHER      20.295983    162.367865           0             8   \n",
       "9             ROCHER       4.761905    178.666667           0             8   \n",
       "10  KINDER CHOCOLATE       8.510638    100.765957           0             8   \n",
       "11         RAFFAELLO      20.382166    138.598726           0             8   \n",
       "12        KINDER JOY       0.000000      0.000000           0             8   \n",
       "13        KINDER JOY       7.111111    144.497778           0             8   \n",
       "14        KINDER JOY      20.869565    151.930435           0             8   \n",
       "15        COLLECTION       2.702703    172.756757           0             8   \n",
       "16            ROCHER      20.295983    162.367865           0             8   \n",
       "17            ROCHER       4.761905    178.666667           0             8   \n",
       "18  KINDER CHOCOLATE       8.510638    100.765957           0             8   \n",
       "19         RAFFAELLO      20.382166    138.598726           0             8   \n",
       "\n",
       "    ...  IS_NEWYEAR  IS_CHRISTMAS  IS_12  IS_11  IS_618  IS_SUMMER  IS_WINTER  \\\n",
       "0   ...           0             0      0      0       0          0          1   \n",
       "1   ...           0             0      0      0       0          0          1   \n",
       "2   ...           0             0      0      0       0          0          1   \n",
       "3   ...           0             0      0      0       0          0          1   \n",
       "4   ...           0             0      0      0       0          0          1   \n",
       "5   ...           0             0      0      0       0          0          1   \n",
       "6   ...           0             0      0      0       0          0          1   \n",
       "7   ...           0             0      0      0       0          0          1   \n",
       "8   ...           0             0      0      0       0          0          1   \n",
       "9   ...           0             0      0      0       0          0          1   \n",
       "10  ...           0             0      0      0       0          0          1   \n",
       "11  ...           0             0      0      0       0          0          1   \n",
       "12  ...           0             0      0      0       0          0          1   \n",
       "13  ...           0             0      0      0       0          0          1   \n",
       "14  ...           0             0      0      0       0          0          1   \n",
       "15  ...           0             0      0      0       0          0          1   \n",
       "16  ...           0             0      0      0       0          0          1   \n",
       "17  ...           0             0      0      0       0          0          1   \n",
       "18  ...           0             0      0      0       0          0          1   \n",
       "19  ...           0             0      0      0       0          0          1   \n",
       "\n",
       "    STORE_COUNT  CITY_COUNT  RN  \n",
       "0          1497          12   1  \n",
       "1          1497          12   1  \n",
       "2          1497          12   1  \n",
       "3          1497          12   1  \n",
       "4          1497          12   1  \n",
       "5          1497          12   1  \n",
       "6          1497          12   1  \n",
       "7          1497          12   1  \n",
       "8          1497          12   1  \n",
       "9          1497          12   1  \n",
       "10         1497          12   1  \n",
       "11         1497          12   1  \n",
       "12         1497          12   1  \n",
       "13         1497          12   1  \n",
       "14         1497          12   1  \n",
       "15         1497          12   1  \n",
       "16         1497          12   1  \n",
       "17         1497          12   1  \n",
       "18         1497          12   1  \n",
       "19         1497          12   1  \n",
       "\n",
       "[20 rows x 26 columns]"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(20)\n",
    "# df[\"REPORT_DATE\"].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0  REPORT_DATE       2018-02-24\n",
       "   STORE_BKEY        BJ07110011\n",
       "   BANNER_NAME         7-Eleven\n",
       "   STORE_TYPE               CVS\n",
       "   PRODUCT_BKEY      XCN0401200\n",
       "   BRAND_NAME            ROCHER\n",
       "   AMOUNT_PER_KG         20.296\n",
       "   PRICE_PER_KG         162.368\n",
       "   HAS_GROUND                 0\n",
       "   WEEK_OF_YEAR               8\n",
       "   MONTH_OF_YEAR              2\n",
       "   YEAR_OF_WEEK            2018\n",
       "   IS_VALENTINE               0\n",
       "   IS_TEACHER                 0\n",
       "   IS_C_VALENTINE             0\n",
       "   IS_CHILDREN                0\n",
       "   IS_NEWYEAR                 0\n",
       "   IS_CHRISTMAS               0\n",
       "   IS_12                      0\n",
       "   IS_11                      0\n",
       "   IS_618                     0\n",
       "   IS_SUMMER                  0\n",
       "   IS_WINTER                  1\n",
       "   STORE_COUNT             1497\n",
       "   CITY_COUNT                12\n",
       "   RN                         1\n",
       "1  REPORT_DATE       2018-02-24\n",
       "   STORE_BKEY        BJ07110011\n",
       "   BANNER_NAME         7-Eleven\n",
       "   STORE_TYPE               CVS\n",
       "                        ...    \n",
       "3  IS_WINTER                  1\n",
       "   STORE_COUNT             1497\n",
       "   CITY_COUNT                12\n",
       "   RN                         1\n",
       "4  REPORT_DATE       2018-02-24\n",
       "   STORE_BKEY        BJ07110011\n",
       "   BANNER_NAME         7-Eleven\n",
       "   STORE_TYPE               CVS\n",
       "   PRODUCT_BKEY      XCN8701862\n",
       "   BRAND_NAME        KINDER JOY\n",
       "   AMOUNT_PER_KG              0\n",
       "   PRICE_PER_KG               0\n",
       "   HAS_GROUND                 0\n",
       "   WEEK_OF_YEAR               8\n",
       "   MONTH_OF_YEAR              2\n",
       "   YEAR_OF_WEEK            2018\n",
       "   IS_VALENTINE               0\n",
       "   IS_TEACHER                 0\n",
       "   IS_C_VALENTINE             0\n",
       "   IS_CHILDREN                0\n",
       "   IS_NEWYEAR                 0\n",
       "   IS_CHRISTMAS               0\n",
       "   IS_12                      0\n",
       "   IS_11                      0\n",
       "   IS_618                     0\n",
       "   IS_SUMMER                  0\n",
       "   IS_WINTER                  1\n",
       "   STORE_COUNT             1497\n",
       "   CITY_COUNT                12\n",
       "   RN                         1\n",
       "Length: 130, dtype: object"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_head.stack()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-44-c4bed2eb9df4>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbase_path\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"BANNER.csv\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreadlines\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      3\u001b[0m     \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mline\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mc:\\users\\wenyang.zhang\\documents\\myspace\\python37\\lib\\encodings\\cp1252.py\u001b[0m in \u001b[0;36mdecode\u001b[1;34m(self, input, final)\u001b[0m\n\u001b[0;32m     20\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     21\u001b[0m \u001b[1;32mclass\u001b[0m \u001b[0mIncrementalDecoder\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcodecs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIncrementalDecoder\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 22\u001b[1;33m     \u001b[1;32mdef\u001b[0m \u001b[0mdecode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfinal\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     23\u001b[0m         \u001b[1;32mreturn\u001b[0m \u001b[0mcodecs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcharmap_decode\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0minput\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0merrors\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mdecoding_table\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     24\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "df_trend = \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>REPORT_DATE</th>\n",
       "      <th>STORE_BKEY</th>\n",
       "      <th>BANNER_NAME</th>\n",
       "      <th>STORE_TYPE</th>\n",
       "      <th>PRODUCT_BKEY</th>\n",
       "      <th>BRAND_NAME</th>\n",
       "      <th>AMOUNT_PER_KG</th>\n",
       "      <th>PRICE_PER_KG</th>\n",
       "      <th>HAS_GROUND</th>\n",
       "      <th>WEEK_OF_YEAR</th>\n",
       "      <th>...</th>\n",
       "      <th>IS_NEWYEAR</th>\n",
       "      <th>IS_CHRISTMAS</th>\n",
       "      <th>IS_12</th>\n",
       "      <th>IS_11</th>\n",
       "      <th>IS_618</th>\n",
       "      <th>IS_SUMMER</th>\n",
       "      <th>IS_WINTER</th>\n",
       "      <th>STORE_COUNT</th>\n",
       "      <th>CITY_COUNT</th>\n",
       "      <th>RN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN0401200</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>20.295983</td>\n",
       "      <td>162.367865</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN04O2904</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>4.761905</td>\n",
       "      <td>178.666667</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1107500</td>\n",
       "      <td>KINDER CHOCOLATE</td>\n",
       "      <td>8.510638</td>\n",
       "      <td>100.765957</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1501100</td>\n",
       "      <td>RAFFAELLO</td>\n",
       "      <td>20.382166</td>\n",
       "      <td>138.598726</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN8701862</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  REPORT_DATE  STORE_BKEY BANNER_NAME STORE_TYPE PRODUCT_BKEY  \\\n",
       "0  2018-02-24  BJ07110011    7-Eleven        CVS   XCN0401200   \n",
       "1  2018-02-24  BJ07110011    7-Eleven        CVS   XCN04O2904   \n",
       "2  2018-02-24  BJ07110011    7-Eleven        CVS   XCN1107500   \n",
       "3  2018-02-24  BJ07110011    7-Eleven        CVS   XCN1501100   \n",
       "4  2018-02-24  BJ07110011    7-Eleven        CVS   XCN8701862   \n",
       "\n",
       "         BRAND_NAME  AMOUNT_PER_KG  PRICE_PER_KG  HAS_GROUND  WEEK_OF_YEAR  \\\n",
       "0            ROCHER      20.295983    162.367865           0             8   \n",
       "1            ROCHER       4.761905    178.666667           0             8   \n",
       "2  KINDER CHOCOLATE       8.510638    100.765957           0             8   \n",
       "3         RAFFAELLO      20.382166    138.598726           0             8   \n",
       "4        KINDER JOY       0.000000      0.000000           0             8   \n",
       "\n",
       "   ...  IS_NEWYEAR  IS_CHRISTMAS  IS_12  IS_11  IS_618  IS_SUMMER  IS_WINTER  \\\n",
       "0  ...           0             0      0      0       0          0          1   \n",
       "1  ...           0             0      0      0       0          0          1   \n",
       "2  ...           0             0      0      0       0          0          1   \n",
       "3  ...           0             0      0      0       0          0          1   \n",
       "4  ...           0             0      0      0       0          0          1   \n",
       "\n",
       "   STORE_COUNT  CITY_COUNT  RN  \n",
       "0         1497          12   1  \n",
       "1         1497          12   1  \n",
       "2         1497          12   1  \n",
       "3         1497          12   1  \n",
       "4         1497          12   1  \n",
       "\n",
       "[5 rows x 26 columns]"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "filePaht = os.path.join(base_path, \"BANNER.csv\")\n",
    "reader = pd.read_csv(filePaht, iterator=True, chunksize=5)\n",
    "reader.get_chunk()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>REPORT_DATE</th>\n",
       "      <th>STORE_BKEY</th>\n",
       "      <th>BANNER_NAME</th>\n",
       "      <th>STORE_TYPE</th>\n",
       "      <th>PRODUCT_BKEY</th>\n",
       "      <th>BRAND_NAME</th>\n",
       "      <th>AMOUNT_PER_KG</th>\n",
       "      <th>PRICE_PER_KG</th>\n",
       "      <th>HAS_GROUND</th>\n",
       "      <th>WEEK_OF_YEAR</th>\n",
       "      <th>...</th>\n",
       "      <th>IS_NEWYEAR</th>\n",
       "      <th>IS_CHRISTMAS</th>\n",
       "      <th>IS_12</th>\n",
       "      <th>IS_11</th>\n",
       "      <th>IS_618</th>\n",
       "      <th>IS_SUMMER</th>\n",
       "      <th>IS_WINTER</th>\n",
       "      <th>STORE_COUNT</th>\n",
       "      <th>CITY_COUNT</th>\n",
       "      <th>RN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN8701863</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>7.111111</td>\n",
       "      <td>144.497778</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN87O8063</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>20.869565</td>\n",
       "      <td>151.930435</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110011</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCNC911600</td>\n",
       "      <td>COLLECTION</td>\n",
       "      <td>2.702703</td>\n",
       "      <td>172.756757</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN0401200</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>20.295983</td>\n",
       "      <td>162.367865</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN04O2904</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>4.761905</td>\n",
       "      <td>178.666667</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  REPORT_DATE  STORE_BKEY BANNER_NAME STORE_TYPE PRODUCT_BKEY  BRAND_NAME  \\\n",
       "5  2018-02-24  BJ07110011    7-Eleven        CVS   XCN8701863  KINDER JOY   \n",
       "6  2018-02-24  BJ07110011    7-Eleven        CVS   XCN87O8063  KINDER JOY   \n",
       "7  2018-02-24  BJ07110011    7-Eleven        CVS   XCNC911600  COLLECTION   \n",
       "8  2018-02-24  BJ07110012    7-Eleven        CVS   XCN0401200      ROCHER   \n",
       "9  2018-02-24  BJ07110012    7-Eleven        CVS   XCN04O2904      ROCHER   \n",
       "\n",
       "   AMOUNT_PER_KG  PRICE_PER_KG  HAS_GROUND  WEEK_OF_YEAR  ...  IS_NEWYEAR  \\\n",
       "5       7.111111    144.497778           0             8  ...           0   \n",
       "6      20.869565    151.930435           0             8  ...           0   \n",
       "7       2.702703    172.756757           0             8  ...           0   \n",
       "8      20.295983    162.367865           0             8  ...           0   \n",
       "9       4.761905    178.666667           0             8  ...           0   \n",
       "\n",
       "   IS_CHRISTMAS  IS_12  IS_11  IS_618  IS_SUMMER  IS_WINTER  STORE_COUNT  \\\n",
       "5             0      0      0       0          0          1         1497   \n",
       "6             0      0      0       0          0          1         1497   \n",
       "7             0      0      0       0          0          1         1497   \n",
       "8             0      0      0       0          0          1         1497   \n",
       "9             0      0      0       0          0          1         1497   \n",
       "\n",
       "   CITY_COUNT  RN  \n",
       "5          12   1  \n",
       "6          12   1  \n",
       "7          12   1  \n",
       "8          12   1  \n",
       "9          12   1  \n",
       "\n",
       "[5 rows x 26 columns]"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reader.get_chunk()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>REPORT_DATE</th>\n",
       "      <th>STORE_BKEY</th>\n",
       "      <th>BANNER_NAME</th>\n",
       "      <th>STORE_TYPE</th>\n",
       "      <th>PRODUCT_BKEY</th>\n",
       "      <th>BRAND_NAME</th>\n",
       "      <th>AMOUNT_PER_KG</th>\n",
       "      <th>PRICE_PER_KG</th>\n",
       "      <th>HAS_GROUND</th>\n",
       "      <th>WEEK_OF_YEAR</th>\n",
       "      <th>...</th>\n",
       "      <th>IS_NEWYEAR</th>\n",
       "      <th>IS_CHRISTMAS</th>\n",
       "      <th>IS_12</th>\n",
       "      <th>IS_11</th>\n",
       "      <th>IS_618</th>\n",
       "      <th>IS_SUMMER</th>\n",
       "      <th>IS_WINTER</th>\n",
       "      <th>STORE_COUNT</th>\n",
       "      <th>CITY_COUNT</th>\n",
       "      <th>RN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1107500</td>\n",
       "      <td>KINDER CHOCOLATE</td>\n",
       "      <td>8.510638</td>\n",
       "      <td>100.765957</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1501100</td>\n",
       "      <td>RAFFAELLO</td>\n",
       "      <td>20.382166</td>\n",
       "      <td>138.598726</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN8701862</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN8701863</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>7.111111</td>\n",
       "      <td>144.497778</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110012</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN87O8063</td>\n",
       "      <td>KINDER JOY</td>\n",
       "      <td>20.869565</td>\n",
       "      <td>151.930435</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   REPORT_DATE  STORE_BKEY BANNER_NAME STORE_TYPE PRODUCT_BKEY  \\\n",
       "10  2018-02-24  BJ07110012    7-Eleven        CVS   XCN1107500   \n",
       "11  2018-02-24  BJ07110012    7-Eleven        CVS   XCN1501100   \n",
       "12  2018-02-24  BJ07110012    7-Eleven        CVS   XCN8701862   \n",
       "13  2018-02-24  BJ07110012    7-Eleven        CVS   XCN8701863   \n",
       "14  2018-02-24  BJ07110012    7-Eleven        CVS   XCN87O8063   \n",
       "\n",
       "          BRAND_NAME  AMOUNT_PER_KG  PRICE_PER_KG  HAS_GROUND  WEEK_OF_YEAR  \\\n",
       "10  KINDER CHOCOLATE       8.510638    100.765957           0             8   \n",
       "11         RAFFAELLO      20.382166    138.598726           0             8   \n",
       "12        KINDER JOY       0.000000      0.000000           0             8   \n",
       "13        KINDER JOY       7.111111    144.497778           0             8   \n",
       "14        KINDER JOY      20.869565    151.930435           0             8   \n",
       "\n",
       "    ...  IS_NEWYEAR  IS_CHRISTMAS  IS_12  IS_11  IS_618  IS_SUMMER  IS_WINTER  \\\n",
       "10  ...           0             0      0      0       0          0          1   \n",
       "11  ...           0             0      0      0       0          0          1   \n",
       "12  ...           0             0      0      0       0          0          1   \n",
       "13  ...           0             0      0      0       0          0          1   \n",
       "14  ...           0             0      0      0       0          0          1   \n",
       "\n",
       "    STORE_COUNT  CITY_COUNT  RN  \n",
       "10         1497          12   1  \n",
       "11         1497          12   1  \n",
       "12         1497          12   1  \n",
       "13         1497          12   1  \n",
       "14         1497          12   1  \n",
       "\n",
       "[5 rows x 26 columns]"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reader.get_chunk()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>REPORT_DATE</th>\n",
       "      <th>STORE_BKEY</th>\n",
       "      <th>BANNER_NAME</th>\n",
       "      <th>STORE_TYPE</th>\n",
       "      <th>PRODUCT_BKEY</th>\n",
       "      <th>BRAND_NAME</th>\n",
       "      <th>AMOUNT_PER_KG</th>\n",
       "      <th>PRICE_PER_KG</th>\n",
       "      <th>HAS_GROUND</th>\n",
       "      <th>WEEK_OF_YEAR</th>\n",
       "      <th>...</th>\n",
       "      <th>IS_NEWYEAR</th>\n",
       "      <th>IS_CHRISTMAS</th>\n",
       "      <th>IS_12</th>\n",
       "      <th>IS_11</th>\n",
       "      <th>IS_618</th>\n",
       "      <th>IS_SUMMER</th>\n",
       "      <th>IS_WINTER</th>\n",
       "      <th>STORE_COUNT</th>\n",
       "      <th>CITY_COUNT</th>\n",
       "      <th>RN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>55</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110019</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCNC911600</td>\n",
       "      <td>COLLECTION</td>\n",
       "      <td>2.702703</td>\n",
       "      <td>172.756757</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>56</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110020</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN0401200</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>20.295983</td>\n",
       "      <td>162.367865</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110020</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN04O2904</td>\n",
       "      <td>ROCHER</td>\n",
       "      <td>4.761905</td>\n",
       "      <td>178.666667</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110020</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1107500</td>\n",
       "      <td>KINDER CHOCOLATE</td>\n",
       "      <td>8.510638</td>\n",
       "      <td>100.765957</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>2018-02-24</td>\n",
       "      <td>BJ07110020</td>\n",
       "      <td>7-Eleven</td>\n",
       "      <td>CVS</td>\n",
       "      <td>XCN1501100</td>\n",
       "      <td>RAFFAELLO</td>\n",
       "      <td>20.382166</td>\n",
       "      <td>138.598726</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1497</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   REPORT_DATE  STORE_BKEY BANNER_NAME STORE_TYPE PRODUCT_BKEY  \\\n",
       "55  2018-02-24  BJ07110019    7-Eleven        CVS   XCNC911600   \n",
       "56  2018-02-24  BJ07110020    7-Eleven        CVS   XCN0401200   \n",
       "57  2018-02-24  BJ07110020    7-Eleven        CVS   XCN04O2904   \n",
       "58  2018-02-24  BJ07110020    7-Eleven        CVS   XCN1107500   \n",
       "59  2018-02-24  BJ07110020    7-Eleven        CVS   XCN1501100   \n",
       "\n",
       "          BRAND_NAME  AMOUNT_PER_KG  PRICE_PER_KG  HAS_GROUND  WEEK_OF_YEAR  \\\n",
       "55        COLLECTION       2.702703    172.756757           0             8   \n",
       "56            ROCHER      20.295983    162.367865           0             8   \n",
       "57            ROCHER       4.761905    178.666667           0             8   \n",
       "58  KINDER CHOCOLATE       8.510638    100.765957           0             8   \n",
       "59         RAFFAELLO      20.382166    138.598726           0             8   \n",
       "\n",
       "    ...  IS_NEWYEAR  IS_CHRISTMAS  IS_12  IS_11  IS_618  IS_SUMMER  IS_WINTER  \\\n",
       "55  ...           0             0      0      0       0          0          1   \n",
       "56  ...           0             0      0      0       0          0          1   \n",
       "57  ...           0             0      0      0       0          0          1   \n",
       "58  ...           0             0      0      0       0          0          1   \n",
       "59  ...           0             0      0      0       0          0          1   \n",
       "\n",
       "    STORE_COUNT  CITY_COUNT  RN  \n",
       "55         1497          12   1  \n",
       "56         1497          12   1  \n",
       "57         1497          12   1  \n",
       "58         1497          12   1  \n",
       "59         1497          12   1  \n",
       "\n",
       "[5 rows x 26 columns]"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reader.get_chunk()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "'TextFileReader' object has no attribute 'empty'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-18-d2cf9abb066c>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[0mreader\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfilePaht\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0miterator\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mchunksize\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[0mreader\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_chunk\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[0mreader\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mempty\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mAttributeError\u001b[0m: 'TextFileReader' object has no attribute 'empty'"
     ]
    }
   ],
   "source": [
    "filePaht = os.path.join(base_path, \"BANNER_00.csv\")\n",
    "reader = pd.read_csv(filePaht, iterator=True, chunksize=10)\n",
    "reader.get_chunk()\n",
    "reader.empty"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>REPORT_DATE\tSTORE_BKEY\tBANNER_NAME\tSTORE_TYPE\tPRODUCT_BKEY\tBRAND_NAME\tAMOUNT_PER_KG\tPRICE_PER_KG\tHAS_GROUND\tWEEK_OF_YEAR\tMONTH_OF_YEAR\tYEAR_OF_WEEK\tIS_VALENTINE\tIS_TEACHER\tIS_C_VALENTINE\tIS_CHILDREN\tIS_NEWYEAR\tIS_CHRISTMAS\tIS_12\tIS_11\tIS_618\tIS_SUMMER\tIS_WINTER\tSTORE_COUNT\tCITY_COUNT\tRN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>2018/2/24\\tBJ07110012\\t7-Eleven\\tCVS\\tXCN11075...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2018/2/24\\tBJ07110012\\t7-Eleven\\tCVS\\tXCN15011...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   REPORT_DATE\\tSTORE_BKEY\\tBANNER_NAME\\tSTORE_TYPE\\tPRODUCT_BKEY\\tBRAND_NAME\\tAMOUNT_PER_KG\\tPRICE_PER_KG\\tHAS_GROUND\\tWEEK_OF_YEAR\\tMONTH_OF_YEAR\\tYEAR_OF_WEEK\\tIS_VALENTINE\\tIS_TEACHER\\tIS_C_VALENTINE\\tIS_CHILDREN\\tIS_NEWYEAR\\tIS_CHRISTMAS\\tIS_12\\tIS_11\\tIS_618\\tIS_SUMMER\\tIS_WINTER\\tSTORE_COUNT\\tCITY_COUNT\\tRN\n",
       "10  2018/2/24\\tBJ07110012\\t7-Eleven\\tCVS\\tXCN11075...                                                                                                                                                                                                                                                                      \n",
       "11  2018/2/24\\tBJ07110012\\t7-Eleven\\tCVS\\tXCN15011...                                                                                                                                                                                                                                                                      "
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reader.get_chunk()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "ename": "StopIteration",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mStopIteration\u001b[0m                             Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-17-7d32cf459984>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mreader\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_chunk\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32mc:\\users\\wenyang.zhang\\documents\\myspace\\python37\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36mget_chunk\u001b[1;34m(self, size)\u001b[0m\n\u001b[0;32m   1171\u001b[0m                 \u001b[1;32mraise\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1172\u001b[0m             \u001b[0msize\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msize\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnrows\u001b[0m \u001b[1;33m-\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_currow\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1173\u001b[1;33m         \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnrows\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msize\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1174\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1175\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mc:\\users\\wenyang.zhang\\documents\\myspace\\python37\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36mread\u001b[1;34m(self, nrows)\u001b[0m\n\u001b[0;32m   1137\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnrows\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1138\u001b[0m         \u001b[0mnrows\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_validate_integer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'nrows'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnrows\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1139\u001b[1;33m         \u001b[0mret\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnrows\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1140\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1141\u001b[0m         \u001b[1;31m# May alter columns / col_dict\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mc:\\users\\wenyang.zhang\\documents\\myspace\\python37\\lib\\site-packages\\pandas\\io\\parsers.py\u001b[0m in \u001b[0;36mread\u001b[1;34m(self, nrows)\u001b[0m\n\u001b[0;32m   1993\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnrows\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1994\u001b[0m         \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1995\u001b[1;33m             \u001b[0mdata\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_reader\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnrows\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1996\u001b[0m         \u001b[1;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1997\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_first_chunk\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader.read\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;32mpandas\\_libs\\parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._read_low_memory\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;31mStopIteration\u001b[0m: "
     ]
    }
   ],
   "source": [
    "reader.get_chunk()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>REPORT_DATE</th>\n",
       "      <th>AMOUNT_PER_KG</th>\n",
       "      <th>PRICE_PER_KG</th>\n",
       "      <th>HAS_GROUND</th>\n",
       "      <th>WEEK_OF_YEAR</th>\n",
       "      <th>MONTH_OF_YEAR</th>\n",
       "      <th>YEAR_OF_WEEK</th>\n",
       "      <th>IS_VALENTINE</th>\n",
       "      <th>IS_TEACHER</th>\n",
       "      <th>IS_C_VALENTINE</th>\n",
       "      <th>...</th>\n",
       "      <th>LAST_6_MONTH_MID</th>\n",
       "      <th>LAST_6_MONTH_MID25</th>\n",
       "      <th>LAST_6_MONTH_MID75</th>\n",
       "      <th>LAST_12_MONTH_AVG</th>\n",
       "      <th>LAST_12_MONTH_MIN</th>\n",
       "      <th>LAST_12_MONTH_MAX</th>\n",
       "      <th>LAST_12_MONTH_SUM</th>\n",
       "      <th>LAST_12_MONTH_MID</th>\n",
       "      <th>LAST_12_MONTH_MID25</th>\n",
       "      <th>LAST_12_MONTH_MID75</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2016-09-01</td>\n",
       "      <td>7.39046</td>\n",
       "      <td>86.39633</td>\n",
       "      <td>0.070796</td>\n",
       "      <td>35.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.632679</td>\n",
       "      <td>0.632679</td>\n",
       "      <td>0.632679</td>\n",
       "      <td>0.632679</td>\n",
       "      <td>0.632679</td>\n",
       "      <td>0.632679</td>\n",
       "      <td>0.632679</td>\n",
       "      <td>0.632679</td>\n",
       "      <td>0.632679</td>\n",
       "      <td>0.632679</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 71 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  REPORT_DATE  AMOUNT_PER_KG  PRICE_PER_KG  HAS_GROUND  WEEK_OF_YEAR  \\\n",
       "0  2016-09-01        7.39046      86.39633    0.070796          35.0   \n",
       "\n",
       "   MONTH_OF_YEAR  YEAR_OF_WEEK  IS_VALENTINE  IS_TEACHER  IS_C_VALENTINE  \\\n",
       "0            9.0        2016.0           0.0         0.0             0.0   \n",
       "\n",
       "          ...           LAST_6_MONTH_MID  LAST_6_MONTH_MID25  \\\n",
       "0         ...                   0.632679            0.632679   \n",
       "\n",
       "   LAST_6_MONTH_MID75  LAST_12_MONTH_AVG  LAST_12_MONTH_MIN  \\\n",
       "0            0.632679           0.632679           0.632679   \n",
       "\n",
       "   LAST_12_MONTH_MAX  LAST_12_MONTH_SUM  LAST_12_MONTH_MID  \\\n",
       "0           0.632679           0.632679           0.632679   \n",
       "\n",
       "   LAST_12_MONTH_MID25  LAST_12_MONTH_MID75  \n",
       "0             0.632679             0.632679  \n",
       "\n",
       "[1 rows x 71 columns]"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import pymysql\n",
    "import os, sys\n",
    "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor, AdaBoostRegressor\n",
    "from sklearn.model_selection import train_test_split\n",
    "from matplotlib import pyplot as plt\n",
    "import time\n",
    "\n",
    "basePath = \"..\\\\dataset\"\n",
    "filePath = os.path.join(basePath, \"banner_carr.csv\")\n",
    "df_banner=pd.read_csv(filePath)\n",
    "#df_banner2.head()\n",
    "df_banner_agg = df_banner.drop(\"id\", axis=1).groupby(\"REPORT_DATE\").mean().reset_index()\n",
    "\n",
    "filePath = os.path.join(basePath, \"SalesTrend.csv\")\n",
    "df_trend = pd.read_csv(filePath)\n",
    "df_trend_carre = df_trend[df_trend.BANNER_NAME == 'Carrefour']\n",
    "df_trend_carre_agg = df_trend_carre.groupby('REPORT_DATE').mean().reset_index()\n",
    "\n",
    "df_merge = df_banner_agg.merge(df_trend_carre_agg, on=[\"REPORT_DATE\"], how=\"inner\")\n",
    "\n",
    "#df_banner_agg[\"REPORT_DATE\"] = df_banner_agg[\"REPORT_DATE\"].apply(lambda x: x.replace(\"/\", \"-\"))\n",
    "df_merge.head(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>YEAR_OF_WEEK</th>\n",
       "      <th>MONTH_OF_YEAR</th>\n",
       "      <th>QLI</th>\n",
       "      <th>A</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2016.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-0.004332</td>\n",
       "      <td>201601</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2016.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>18.156385</td>\n",
       "      <td>201609</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2016.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>6.517972</td>\n",
       "      <td>201610</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2016.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>8.695139</td>\n",
       "      <td>201611</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2016.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>35.298475</td>\n",
       "      <td>201612</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   YEAR_OF_WEEK  MONTH_OF_YEAR        QLI       A\n",
       "0        2016.0            1.0  -0.004332  201601\n",
       "1        2016.0            9.0  18.156385  201609\n",
       "2        2016.0           10.0   6.517972  201610\n",
       "3        2016.0           11.0   8.695139  201611\n",
       "4        2016.0           12.0  35.298475  201612"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_banner_agg = df_merge[[\"YEAR_OF_WEEK\",\"MONTH_OF_YEAR\",\"QLI\"]]\n",
    "# df_banner_agg.head()\n",
    "df_banner_agg = df_banner_agg.groupby(['YEAR_OF_WEEK','MONTH_OF_YEAR']).sum().reset_index()\n",
    "df_banner_agg[\"A\"] = df_banner_agg[\"YEAR_OF_WEEK\"].astype(int).astype(str) + df_banner_agg[\"MONTH_OF_YEAR\"].astype(int).astype(str).apply(lambda x: x.rjust(2,'0'))\n",
    "df_banner_agg.groupby('A').sum().reset_index()\n",
    "df_banner_agg.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>YEAR_OF_WEEK</th>\n",
       "      <th>MONTH_OF_YEAR</th>\n",
       "      <th>QLI</th>\n",
       "      <th>A</th>\n",
       "      <th>DATE</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2016</td>\n",
       "      <td>1</td>\n",
       "      <td>-0.004332</td>\n",
       "      <td>201601</td>\n",
       "      <td>201601</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2016</td>\n",
       "      <td>9</td>\n",
       "      <td>18.156385</td>\n",
       "      <td>201609</td>\n",
       "      <td>201609</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2016</td>\n",
       "      <td>10</td>\n",
       "      <td>6.517972</td>\n",
       "      <td>201610</td>\n",
       "      <td>201610</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2016</td>\n",
       "      <td>11</td>\n",
       "      <td>8.695139</td>\n",
       "      <td>201611</td>\n",
       "      <td>201611</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2016</td>\n",
       "      <td>12</td>\n",
       "      <td>35.298475</td>\n",
       "      <td>201612</td>\n",
       "      <td>201612</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  YEAR_OF_WEEK MONTH_OF_YEAR        QLI       A    DATE\n",
       "0         2016             1  -0.004332  201601  201601\n",
       "1         2016             9  18.156385  201609  201609\n",
       "2         2016            10   6.517972  201610  201610\n",
       "3         2016            11   8.695139  201611  201611\n",
       "4         2016            12  35.298475  201612  201612"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_banner_agg[\"MONTH_OF_YEAR\"] = df_banner_agg[\"MONTH_OF_YEAR\"].astype(int).astype(str)\n",
    "df_banner_agg[\"YEAR_OF_WEEK\"] = df_banner_agg[\"YEAR_OF_WEEK\"].astype(int).astype(str)\n",
    "\n",
    "df_banner_agg[\"DATE\"] = df_banner_agg[\"YEAR_OF_WEEK\"]+ df_banner_agg[\"MONTH_OF_YEAR\"].apply(lambda x: x.rjust(2,'0'))\n",
    "#df_banner_agg.groupby('A').sum().reset_index()\n",
    "df_banner_agg.groupby(\"A\").sum().reindex()\n",
    "df_banner_agg.head()\n",
    "# df_banner_agg_month.head(100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x196912e8>]"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABBEAAAD8CAYAAAAhbjwkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XdclfX///HnxRRxIuDAlWbOFBW3hgqWaY4cOEA4WtnHb8OycuZO1LSdDUuFDjhLxZXjHAfujSPNTDK3Ig5UNuf1+yPwZ2WKcs55n3N43m83bgqcc67Hp08pvLiu16WJCIiIiIiIiIiIHsZJdQARERERERER2QcOEYiIiIiIiIgoXzhEICIiIiIiIqJ84RCBiIiIiIiIiPKFQwQiIiIiIiIiyhcOEYiIiIiIiIgoXzhEICIiIiIiIqJ84RCBiIiIiIiIiPKFQwQiIiIiIiIiyhcXax7M29tbqlatas1DEhEREREREdFD7N+//6qI+DzscVYdIlStWhX79u2z5iGJiIiIiIiI6CE0TfszP4/j5QxERERERERElC8cIhARERERERFRvnCIQERERERERET5wiECEREREREREeULhwhERERERERElC/5ujuDpmmnAdwCkAMgW0QCNE3zArAIQFUApwGEiMh1y2QSERERERERkWqPciZCOxHxF5GA3PdHAjCKSA0Axtz3iYiIiIiIiMhBFeRyhm4AonN/Hw2ge8FziIiIiKiwS0xMxLJly1RnEBHRfeR3iCAA1muatl/TtMG5HysrIhcBIPdXX0sEEhEREVHhMm7cOPTs2RNnz55VnUJERP+Q3yFCKxFpBOB5AK9pmvZMfg+gadpgTdP2aZq2Lykp6bEiiYiIiKhwEBEYjUaICPR6veocIiL6h3wNEUTkQu6vVwAsA9AUwGVN08oDQO6vV/7jubNFJEBEAnx8fMxTTUREREQO6dixY7h06RJcXV0RFRUFEVGdRERE93joEEHTNE9N04rn/R7AswCOAlgBICL3YREA4iwVSURERESFg8FgAACMHj0aJ0+exM6dOxUXERHRvfJzJkJZANs0TTsEYA+A1SKyFsA0AB00TTsJoEPu+0REREREj81oNKJ69ep45513ULRoUURFRalOIiKiezx0iCAiiSLSIPetrohMyf14sogEiUiN3F+vWT6X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zZo1+f3vf8/MmTPp1KkT77zzToUaLidS0aiIECX9+vVjwYIFbN68mTp16ngdR6TCmTdvHklJSYwYMYKnn366XNvev3//cQsDoZc///zzb+5btWpVEhISqFevHvXq1aNKlSocPXqUYDBIMBgsvO7VtILriYmJpKSk0LdvX31GlZG1luzs7CLFhdAiw44dOwgGg4Xzn3HGGTRs2LBIcSG0yHAyB3TMy8tjypQpjBgxgtzcXAYOHMjIkSOpVatWeTxUEZFys2bNGu68807WrVvHww8/zNixY1XoFPE5FRGiICMjgyuuuILhw4czatQor+OIVFh33nknM2fOJC0tjSuvvPKE8xcUB05UICipOFBQIDjWZUJCAuecc47GBQrgfLHPyso65h4MW7ZsYe/evUXmj4+PLywoFC8wXHjhhcc9T/eiRYt46KGH2LhxI127duWll17SMB8R8bUjR46wefNmmjVr5nUUESkFFRGi4MYbbyQ9PZ0tW7boFCciEbRv3z5atGhBfHw8s2fP5vvvvy+xQFB813MouTgQel3FASlvubm5x9yDYevWrWzdupUjR44UzhsTE0P9+vWLFBYaNGjAP//5TxYuXMjFF1/MCy+8wC233KLXqYiIiJQrFREibOnSpVx77bU899xzPProo17HEanwPvjgA2688cbfTA8tDpS094CKA+JHwWCQXbt2HXMPhi1btrB7924AqlWrxpNPPskDDzxA5cqVPU4tIiIiFZGKCBFkraVjx47s2LGDTZs2UbVqVa8jiZwWlixZwu7du4sUDFQckIrs0KFDbNu2jbp161K9enWv44iIiEgFVtoiQqVohKlo5s+fz4oVK3jttddUQBCJoi5dungdQSSqqlatqrHEIiIi4ivaEyFMR48epVWrVuTn57NhwwYqVVIdRkRERERERE5t2hMhQmbMmMFXX33F7NmzVUAQERERERGR04r2RAjD4cOHadKkCbVr12blypUahy0iIiIiIiIVgvZEiIApU6aQlZXFG2+8oQKCiIiIiIiInHZivA5wqti/fz+jRo2iS5cudO3a1es4IiIiIiIiIlGnIkIpvfjii+zZs4dnn33W6ygiIiIiIiIinlARoRSys7N5/vnn6d27N23btvU6joiIiIiIiIgnTqqIYIzpZoz52hjzrTHmifIK5Tdjxozh4MGDjBo1yusoIiIiIiIi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ba2Q/nEFznpb5WUud9n1Qu7fA7cP8joXzh6D17o5auEMbyjvz/syvR/dbe/qOGdWIGS6l7lC+8dmOEWE7BMsxxvWBwdmiMQfzhGDLb+ePm0Nzm4hNXFOYbPJvSw43VVdnGrZT0COe/0c97bLcU6/thbnzVBwhNGytOVlrg7utEycL1TVo7y+ktz5DgPfU/QgNcNxDmL1NXCjj3Jtwzly+M/uPM29zoWzS98Bip726rwI5IrD+YJ2brH3Vtht+SDb68C+kOWu8kmux3FO/bMGpxO72g+5is0zjaJnZ/ByfQ1x19d/cDbeOvohl3vbf+MUANfjnoLOJ7kGALMi3EeG+zwmAB/iHA9hPZDsk1zR6iOPl8vrPrIsubYR+T4yrFxEr48cifNaWQ8EcA/eiHOso3ScA4bODpne1r3/AffxbIjQ8xhuro/c9Vew3Pk+yfU3fu0fPwEu80OuYq/BpRQ9CKqX6+tZfu0fPwGa+iSXAV7E6R/X4Z6RwOtc7m1PA2Mj3D+Gu76aA5+7z+Ma4Pri+fzyV3BqMRERERERERGRElXY4QwiIiIiIiIiUr5URBARERERERGRUlERQURERERERERKRUUEERERERERESkVFRFEREREREREpFRURBARERERERGRUlERQURERERERERKRUUEERERERERESmV/w+yak90ZnlJ4wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1296x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(18,4))\n",
    "plt.plot(df_banner_agg[\"A\"].values, df_banner_agg[\"QLI\"].values,\"k-\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_banner_2016 = df_banner_agg[df_banner_agg[\"YEAR_OF_WEEK\"]==\"2016\"]\n",
    "df_banner_2016 = df_banner_2016[[\"DATE\", \"QLI\"]]\n",
    "df_banner_2016=df_banner_2016.drop(0, 0)\n",
    "df_insert = pd.DataFrame({\"DATE\":[\"201601\",\"201602\",\"201603\",\"201604\",\"201605\",\"201606\",\"201607\",\"201608\"],\"QLI\":[0,0,0,0,0,0,0,0]})\n",
    "df_banner_2016 = df_banner_2016.append(df_insert).sort_values(by=\"DATE\")\n",
    "df_banner_2017=df_banner_agg[df_banner_agg[\"YEAR_OF_WEEK\"]==\"2017\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x199d9fd0>]"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15, 4))\n",
    "plt.plot(df_banner_2016[\"DATE\"].values,df_banner_2016[\"QLI\"].values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
